package com.hopes.bizz.protocol.hj212.bo;

import com.alibaba.fastjson.JSONArray;
import com.hopes.bizz.common.core.util.DateUtils;
import io.netty.util.internal.StringUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.Map;

import static com.hopes.bizz.protocol.hj212.constant.HJ212Constant.*;


/**
 * 212协议主要参数
 */
@Data()
@EqualsAndHashCode(callSuper = false)
public class HJ212MainAttrBO {

    /**
     * 设备唯一标识
     */
    private String mn;
    /**
     * 命令编号
     */
    private String cn;
    /**
     * 请求编码
     */
    private String qn;
    /**
     * 系统编号
     */
    private String st;
    /**
     * 数据时间
     */
    private String time;
    /**
     * 数据时间
     */
    private JSONArray data;

    /**
     * 查找数据时间
     *
     * @param dataMap
     * @return
     */
    public static String findDataTime(Map<String, String> dataMap, String commandNo) {
        String timeStr = dataMap.get(KEY_DATA_TIME);
        if (!StringUtil.isNullOrEmpty(timeStr)) {
            Date dataTime = DateUtils.parseDateByStr(timeStr, DATE_FORMAT);
            switch (commandNo) {
                case COMMAND_MINUTE_DATA:
                    dataTime = DateUtils.dateLimitMinute(dataTime);
                    break;
                case COMMAND_HOUR_DATA:
                    dataTime = DateUtils.dateLimitHour(dataTime);
                    break;
                case COMMAND_DAY_DATA:
                    dataTime = DateUtils.dateLimitDay(dataTime);
                    break;
                default:
                    break;
            }
            return DateUtils.formatDate(dataTime, DATE_FORMAT);
        }
        return "";
    }
}
